Аннотация
Создание логических томов из запоминающих устройств и управление ими; форматирование логических томов под файловые системы или подготовка на них областей подкачки
Добавление и удаление хранилища, назначенного группам томов; увеличение размера логического тома, отформатированного под файловую систему, без нарушения его структуры
Создание логических томов (и упражнение)
Расширение логических томов (и упражнение)
Управление логическими томами
После завершения этого раздела вы сможете:
описать компоненты и концепции системы управления логическими томами (LVM);
создать хранилище LVM;
отобразить сведения о компонентах LVM.
Логические тома и система управления логическими томами упрощают процессы, связанные с использованием дискового пространства. Если файловой системе с логическим томом потребуется дополнительный объем, можно добавить его в логический том из свободного пространства в соответствующей группе томов, а затем изменить размер файловой системы. Если возникнут проблемы с диском, можно зарегистрировать запасной диск в качестве физического тома в группе томов и перенести экстенты логического тома на новый диск.
Определения системы управления логическими томами (LVM)
Физические устройства — это запоминающие устройства, которые используются для хранения данных логического тома. Это могут быть блочные устройства, разделы диска, целые диски, массивы RAID или диски SAN. Устройство должно быть инициализировано как физический том системы LVM, чтобы его можно было использовать с этой системой. Все устройство будет использоваться как физический том.
Физические тома — это базовое «физическое» хранилище, используемое с LVM. Необходимо инициализировать устройство как физический том, прежде чем использовать его в системе LVM. Утилиты LVM сегментируют физические тома на физические экстенты — небольшие фрагменты данных, которые выступают в роли наименьших блоков хранения в физическом томе.
Группы томов — это пулы хранения данных, включающие один или несколько физических томов. Это функциональный эквивалент целого диска в базовом хранилище. Физический том может входить только в одну группу томов. Группа томов может состоять из неиспользованного пространства и любого количества логических томов.
Логические тома создаются из свободных физических экстентов в группе томов и представляют собой устройства хранения, которые используются приложениями, пользователями и операционной системой. Логические тома представляют собой набор логических экстентов, которые сопоставляются с физическими экстентами — наименьшими блоками хранения в физическом томе. По умолчанию каждый логический экстент сопоставляется с одним физическим, но это можно изменить. Например, при зеркалировании каждый логический экстент сопоставляется с двумя физическими.
Процедура создания хранилища LVM состоит из нескольких шагов. Первый шаг — определить, какие физические устройства будут использоваться. Выбранные устройства инициализируются как физические тома и распознаются как часть системы управления логическими томами (LVM). Затем физические тома объединяются в группу томов. Создается пул дискового пространства, из которого могут быть выделены логические тома. Логические тома, созданные из доступного пространства в группе томов, могут быть отформатированы под файловую систему, активированы как область подкачки и смонтированы или активированы на постоянной основе.
Система управления логическими томами (LVM) предлагает широкий набор утилит командной строки для создания хранилища LVM и управления им. Эти утилиты командной строки можно использовать в сценариях, поэтому они подходят для автоматизации.
В следующих примерах используется устройство vdb и его разделы для демонстрации команд LVM. На практике потребуется использовать правильные устройства для диска и его разделов, которые используются системой. Используйте команды lsblk, blkid и cat /proc/partitions для идентификации устройств в своей системе.
lsblk
blkid
cat /proc/partitions
Процедура создания логического тома состоит из следующих шагов.
Подготовка физического устройства
Используйте команду parted, gdisk или fdisk, чтобы создать новый раздел для работы с LVM. Всегда задавайте для разделов LVM тип Linux LVM. Используйте 0x8e для разделов MBR. При необходимости используйте команду partprobe, чтобы зарегистрировать новый раздел в ядре.
parted
gdisk
fdisk
Linux LVM
0x8e
partprobe
Также можно использовать целый диск, массив RAID или диск SAN.
Подготавливать физическое устройство необходимо, только если нет уже готовых устройств и требуется новый физический том, чтобы создать или расширить группу томов.
[root@host ~]# parted -s /dev/vdb mkpart primary 1MiB 769MiB [root@host ~]# parted -s /dev/vdb mkpart primary 770MiB 1026MiB [root@host ~]# parted -s /dev/vdb set 1 lvm on [root@host ~]# parted -s /dev/vdb set 2 lvm on
[root@host ~]#
parted -s /dev/vdb mkpart primary 1MiB 769MiB
parted -s /dev/vdb mkpart primary 770MiB 1026MiB
parted -s /dev/vdb set 1 lvm on
parted -s /dev/vdb set 2 lvm on
Создание физического тома
Используйте команду pvcreate, чтобы инициализировать раздел (или другое физическое устройство) как физический том. Команда pvcreate делит физический том на физические экстенты фиксированного размера, например на блоки по 4 МиБ. Чтобы пометить несколько устройств одновременно, передайте их имена как аргументы в команду pvcreate, используя пробел в качестве разделителя.
pvcreate
[root@host ~]# pvcreate /dev/vdb2 /dev/vdb1
pvcreate /dev/vdb2 /dev/vdb1
Устройства /dev/vdb2 и /dev/vdb1 будут помечены как физические тома, готовые для распределения в группу томов.
/dev/vdb2
/dev/vdb1
Создавать физический том необходимо, только если нет свободных физических томов для создания или расширения группы томов.
Создание группы томов
Используйте команду vgcreate, чтобы создать группу томов из одного или нескольких физических томов. Группа томов — это функциональный эквивалент жесткого диска. Вы создаете логические тома из пула свободных физических экстентов в группе томов.
vgcreate
Командная строка vgcreate состоит из имени группы томов, за которым следует один или несколько физических томов, которые необходимо добавить в эту группу томов.
[root@host ~]# vgcreate vg01 /dev/vdb2 /dev/vdb1
vgcreate vg01 /dev/vdb2 /dev/vdb1
Будет создана группа томов vg01, общий размер которой (в физических экстентах) равен сумме размеров двух физических томов (/dev/vdb2 и /dev/vdb1).
vg01
Группу томов нужно создавать, только если она еще не существует. Можно создать дополнительные группы томов для управления использованием физических и логических томов. Кроме того, при необходимости можно расширить существующие группы томов, добавив новые логические тома.
Создание логического тома
Используйте команду lvcreate, чтобы создать новый логический том из доступных физических экстентов в группе томов. Команда lvcreate включает как минимум следующее: опцию -n для указания имени логического тома, опцию -L для указания размера логического тома в байтах или -l для указания размера в логических экстентах, а также имя группы томов, в которой находится этот логический том.
lvcreate
-n
-L
-l
[root@host ~]# lvcreate -n lv01 -L 700M vg01
lvcreate -n lv01 -L 700M vg01
В группе томов vg01 будет создан логический том с именем lv01 и размером 700 МиБ. Команда не будет выполнена, если в группе томов недостаточно свободных физических экстентов для запрошенного размера. Имейте в виду, что, если размер нельзя сопоставить точно, он будет округлен кратно размеру физического экстента.
lv01
Задать размер можно с помощью опции -L. Она принимает размер в байтах, мебибайтах (двоичных мегабайтах), гибибайтах (двоичных гигабайтах) и т. д. (1 мебибайт равен 1 048 576 байт.) Кроме того, можно использовать опцию -l, которая принимает размеры в физических экстентах.
Далее приведены некоторые примеры создания логических томов.
lvcreate -L 128M: создание логического тома размером 128 МиБ.
lvcreate -L 128M
lvcreate -l 128 : создание логического тома размером 128 экстентов. Общее количество байтов зависит от размера физического экстента в базовом физическом томе.
lvcreate -l 128
Разные утилиты отображают имя логического тома либо как обычное имя (/dev/vgname/lvname), либо как имя модуля сопоставления устройств ядра (/dev/mapper/vgname-lvname).
/dev/vgname/lvname
vgname/lvname
/dev/mapper/vgname-lvname
vgname-lvname
Добавление файловой системы
Используйте команду mkfs, чтобы создать файловую систему XFS в новом логическом томе. Вы также можете создать любую другую файловую систему, например ext4.
mkfs
XFS
ext4
[root@host ~]# mkfs -t xfs /dev/vg01/lv01
mkfs -t xfs /dev/vg01/lv01
Чтобы файловая система оставалась доступной после перезагрузок системы, выполните следующие действия.
С помощью команды mkdir создайте точку монтирования.
mkdir
[root@host ~]# mkdir /mnt/data
mkdir /mnt/data
Добавьте запись в файл /etc/fstab.
/etc/fstab
/dev/vg01/lv01 /mnt/data xfs defaults 1 2
Монтирование логического тома по имени эквивалентно монтированию по UUID, поскольку LVM находит физические тома по UUID, даже если вы изначально добавили их в группу томов по имени.
Выполните команду mount /mnt/data, чтобы смонтировать файловую систему, которую вы только что добавили в /etc/fstab.
mount /mnt/data
[root@host ~]# mount /mnt/data
Процедура удаления всех компонентов логического тома состоит из следующих шагов.
Подготовка файловой системы
Переместите все данные, которые необходимо сохранить, в другую файловую систему. С помощью команды umount размонтируйте файловую систему, а затем удалите все записи /etc/fstab, связанные с этой файловой системой.
umount
[root@host ~]# umount /mnt/data
umount /mnt/data
При удалении логического тома удаляются все хранящиеся в нем данные. Прежде чем удалять логический том, создайте резервную копию данных или переместите их.
Удаление логического тома
С помощью команды lvremove ИМЯ_УСТРОЙСТВА удалите ненужный логический том.
lvremove ИМЯ_УСТРОЙСТВА
ИМЯ_УСТРОЙСТВА
[root@host ~]# lvremove /dev/vg01/lv01
lvremove /dev/vg01/lv01
Прежде чем выполнять эту команду, размонтируйте файловую систему логического тома. Команда запрашивает подтверждение перед удалением логического тома.
Физические экстенты логического тома высвобождаются и становятся доступны для назначения в существующие или новые логические тома в группе томов.
Удаление группы томов
С помощью команды vgremove ИМЯ_ГТ удалите ненужную группу томов.
vgremove ИМЯ_ГТ
ИМЯ_ГТ
[root@host ~]# vgremove vg01
vgremove vg01
Физические тома группы томов высвобождаются и становятся доступны для назначения в существующие или новые группы томов в системе.
Удаление физических томов
С помощью команды pvremove удалите ненужные физические тома. Чтобы удалить одновременно несколько устройств физического тома, введите их имена через пробел. Это команда удаляет метаданные физического тома с раздела (или диска). Раздел становится свободным для повторного назначения или форматирования.
pvremove
[root@host ~]# pvremove /dev/vdb2 /dev/vdb1
pvremove /dev/vdb2 /dev/vdb1
Используйте команду pvdisplay для отображения сведений о физических томах. Чтобы отобразить сведения обо всех физических томах, используйте команду без аргументов. Чтобы отобразить сведения о конкретном физическом томе, передайте в команду имя устройства.
pvdisplay
[root@host ~]# pvdisplay /dev/vdb1 --- Physical volume --- PV Name /dev/vdb1 VG Name vg01 PV Size 768.00 MiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 191 Free PE 16 Allocated PE 175 PV UUID JWzDpn-LG3e-n2oi-9Etd-VT2H-PMem-1ZXwP1
pvdisplay /dev/vdb1
PV Name соответствует имени устройства.
PV Name
VG Name показывает группу томов, в которую распределен физический том.
VG Name
PV Size показывает физический размер физического тома, включая неиспользуемое пространство.
PV Size
PE Size показывает размер физического экстента (наименьший размер, который может быть распределен в логический том).
PE Size
Это также множитель при расчете размера любого значения, указанного в физических экстентах, такого как Free PE. Пример: 26 физических экстентов по 4 МиБ (PE Size) ― это 104 МиБ свободного пространства. Размер логического тома округляется до размера, кратного размеру физического экстента.
LVM задает размер физического экстента автоматически, однако его можно указать.
Free PE показывает количество физических экстентов, доступных для распределения в новые логические тома.
Free PE
Используйте команду vgdisplay для отображения сведений о группах томов. Чтобы отобразить сведения обо всех группах томов, используйте команду без аргументов. Чтобы отобразить сведения о конкретной группе томов, передайте в команду имя группы.
vgdisplay
[root@host ~]# vgdisplay vg01 --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 1016.00 MiB PE Size 4.00 MiB Total PE 254 Alloc PE / Size 175 / 700.00 MiB Free PE / Size 79 / 316.00 MiB VG UUID 3snNw3-CF71-CcYG-Llk1-p6EY-rHEv-xfUSez
vgdisplay vg01
VG Name — это имя группы томов.
VG Size — это общий размер пула хранения, доступного для распределения в логические тома.
VG Size
Total PE — это общий размер, выраженный в физических экстентах.
Total PE
Free PE / Size показывает, сколько пространства свободно в группе томов для распределения в новые логические тома или расширения существующих логических томов.
Free PE / Size
Используйте команду lvdisplay для отображения сведений о логических томах. Если в команде не указать аргументы, будут показаны сведения обо всех логических томах. Если в качестве аргумента указать имя устройства логического тома, будут показаны сведения только об этом устройстве.
lvdisplay
[root@host ~]# lvdisplay /dev/vg01/lv01 --- Logical volume --- LV Path /dev/vg01/lv01 LV Name lv01 VG Name vg01 LV UUID 5IyRea-W8Zw-xLHk-3h2a-IuVN-YaeZ-i3IRrN LV Write Access read/write LV Creation host, time host.lab.example.com, 2019-03-28 17:17:47 -0400 LV Status available # open 1 LV Size 700 MiB Current LE 175 Segments 1 Allocation inherit Read ahead sectors auto - current set to 256 Block device 252:0
lvdisplay /dev/vg01/lv01
LV Path показывает имя устройства логического тома.
LV Path
Некоторые утилиты могут отображать имя устройства в виде /dev/mapper/vgname-lvname. Это тот же логический том.
VG Name показывает группу томов, которой принадлежит логический том.
LV Size показывает общий размер логического тома. Используйте утилиты файловой системы для определения свободного пространства и пространства, занятого под данные.
LV Size
Current LE показывает количество логических экстентов, используемых этим логическим томом. Логический экстент обычно сопоставляется с физическим экстентом в группе томов и, следовательно, с физическим томом.
Current LE
Man-страницы lvm(8), pvcreate(8), vgcreate(8), lvcreate(8), pvremove(8), vgremove(8), lvremove(8), pvdisplay(8), vgdisplay(8), lvdisplay(8), fdisk(8), gdisk(8), parted(8), partprobe(8) и mkfs(8)
lvm
vgremove
lvremove